//nodelist
var form = document.getElementsByTagName("form")[0];
var result = document.getElementById("result");

//onsubmit会先验证表单输入的内容，再执行相应的函数,onclick直接执行
form.onsubmit = function(){
    //参数，字符串Id，返回值是HTMLElement标签对象
    var jbgz = document.getElementById("jbgz");
    var jxgz = document.getElementById("jxgz");
    var jj = document.getElementById("jj");
    var gzze = document.getElementById("gzze");
    var yl = document.getElementById("yl");
    var yiliao = document.getElementById("yiliao");
    var sy = document.getElementById("sy");
    var gs = document.getElementById("gs");
    var shengyu = document.getElementById("shengyu");
    var gjj = document.getElementById("gjj");
    var sbtc = document.getElementById("sbtc");
    var jsgz = document.getElementById("jsgz");
    var grsds = document.getElementById("grsds");
    var sfgz = document.getElementById("sfgz");

    // 在访问HTML属性的时候，HTML标签内怎么写，JS中就怎么写TypeError: jj is null
    //600060001000
    //alert(jbgz.value+jxgz.value+jj.value);
    //parseInt第二个参数是进制（2，8，10，16），默认值10
    //如果转换的字符串不是数字，则返回NaN=>not a number
    var jbgzInt = parseInt(jbgz.value, 10);
    var jxgzInt = parseInt(jxgz.value, 10);
    var jjInt = parseInt(jj.value, 10);

    // 字符串和整型数字连接的时候，会把整型数字先转化成字符串，然后再拼接
    // gzze.innerHTML = "<div style='color: blue'>" + ( jbgzInt + jxgzInt + jjInt ) + "</div>"

    //innerText不会解析HTML标签，会原样输出
    // gzze.innerText = "<div style='color: blue'>" + ( jbgzInt + jxgzInt + jjInt ) + "</div>";

    // NaN和任何值相加都会返回NaN;
    // isNaN()参数类型number,返回值是bool
    // 传数字时，返回false
    // 传非数字时，返回true
    if( isNaN(jbgzInt + jxgzInt + jjInt)){
        alert("您输入的格式不正确！")
        return;
    } 
    //toFixed保留几位小数
    gzze.innerHTML = (jbgzInt + jxgzInt + jjInt).toFixed(2);

    var gzzeInt = parseInt(gzze.innerHTML, 10);
    // 由于前面对gzze计算时已经做过严格判断，此处gzzeInt一定是一个数字型，所以说下面的判断可有可无
    // if( isNaN(gzzeInt)){
    //     alert("工资总额计算有误！");
    //     return;
    // }

    yl.innerHTML = (gzzeInt * 0.08).toFixed(2);
    yiliao.innerHTML = (gzzeInt * 0.02).toFixed(2);
    sy.innerHTML = (gzzeInt * 0.005).toFixed(2);
    gs.innerHTML = 0;
    shengyu.innerHTML = 0;
    gjj.innerHTML = (gzzeInt * 0.08).toFixed(2);
    sbtc.innerHTML = 20;

    jsgz.innerHTML = (gzzeInt - 3500).toFixed(2);

    var jsgzInt = parseInt(jsgz.innerHTML);

    var grsdsInt = 0;
    // 计算个人所得税
    if (jsgzInt <= 0) { 
        grsdsInt = 0; 
    }
    if (jsgzInt <= 1500) { 
        grsdsInt = jsgzInt * 0.03; 
    }
    else if (jsgzInt <= 4500) { 
        grsdsInt = jsgzInt * 0.1 - 105; 
    }
    else if (jsgzInt <= 9000) { 
        grsdsInt = jsgzInt * 0.2 - 555; 
    }
    else if (jsgzInt <= 35000) { 
        grsdsInt = jsgzInt * 0.25 - 1005;
    }

    grsds.innerHTML = grsdsInt.toFixed(2);

    sfgz.innerHTML = (gzzeInt - parseInt(grsds.innerHTML)).toFixed(2);

    result.style.display = "block";
    return false;
};
// 通过代码绑定事件
// 1.直接给HTML元素的事件属性设置一个函数名称（注意：不带括号）；
// 2.绑定一个匿名的函数